home *** CD-ROM | disk | FTP | other *** search
/ DS-CD ROM 2 1993 August / DS CD-ROM 2.Ausgabe (August 1993).iso / programm / ds0248 / notes32k.svg < prev    next >
Text File  |  1992-02-26  |  3KB  |  67 lines

  1. SuperVGA 32768 BGI driver 
  2. Version 1.0
  3. December 6, 1991
  4.  
  5. Dies ist die erste version meines SuperVGA 32768 BGI-Treibers. Alle Funktionen
  6. sind implementiert, aber es können noch Fehler auftreten.
  7.  
  8. Anmerkung: Paging, Palettenfunktionen und der Mauszeiger funktionieren mit 
  9.            diesem Treiber nicht.
  10.  
  11. Benutzung de HiColor-Treibers:
  12.  
  13.         Die Implementierung des 32768 Farben-Treibers machte einige Tricks
  14.         nötig, da das BGI-Interface nur 8-bit-Farbwerte zulässt, während
  15.         der Treiber 15-bit-Farbwerte benötigte.
  16.         Die Prozeduren, die geändert werden mußten waren diejenigen, denen
  17.         Farbwerte übergeben wurden (SetColor, SetFillStyle, SetFillPattern,
  18.         PutPixel und Floodfill) und diejenigen, die Farbwerte zurückliefern
  19.         (GetColor and GetPixel).
  20.         Da die HiColor-Modi keine Paletten unterstützen entschied ich mich,
  21.         den SetRGBPalette-Aufruf zu benutzen, um Farben zu setzen, da diese
  22.         Funktion Werte für die R-,B- und G-Komponente erwartet.
  23.  
  24.         Das Format eines Bildpunkts in den HiColor-Modi ist:
  25.         -Byte 1- -Byte 0-
  26.         xRRRRRGG GGGBBBBB
  27.  
  28.         Einige neue Funktionen wurden definiert, um die Farbwahl zu verein-
  29.         fachen. Zusätzlich wurde das Makro RGB (rv,gv,bv) definiert. Es wan-
  30.         delt die R-,G- und B-Werte in das obige Format um und liefert den
  31.         neuen Farbwert zurück.
  32.  
  33.     * RealDrawColor(); - Setzt die aktuelle Zeichenfarbe
  34.       Benutzung:
  35.            setcolor(RealDrawColor(RGB(rval,gval,bval)); - HiColor-Modi
  36.            setcolor(RealDrawColor(cval)); - (Vorschlag für alle anderen Treiber)
  37.  
  38.     * RealFillColor(); - Setzt die aktuelle Füll-Farbe
  39.       Benutzung:
  40.         setfillstyle(fillstyle,RealFillColor(RGB(rval,gval,bval)));
  41.         setfillstyle(fillstyle,RealFillColor(cval));
  42.         setfillpattern(fillpat,RealFillColor(RGB(rval,gval,bval)));
  43.         setfillpattern(fillpat,RealFillColor(cval));
  44.  
  45.     * RealColor(); - PutPixel: setzt die Farbe des Bildpunkts
  46.                - FloodFill: setzt die Begrenzungsfarbe
  47.         putpixel(x,y,RealColor(RGB(rval,gval,bval)));
  48.         putpixel(x,y,RealColor(cval));
  49.         floodfill(x,y,RealColor(RGB(rval,gval,bval)));
  50.         floodfill(x,y,RealColor(cval));
  51.  
  52.     * GetPixel liefert normalerweise nur einen 8-bit-Farbwert zurück.
  53.           Trotzdem ist der Wert, den der BGI-Treiber zurückliefert ein
  54.           16-bit-Wert in DX (das BGI-Kernel läd den Wert in AX und löscht
  55.           die obersten 8 bit). Um also den Farbwert eines Bildpunkts zu
  56.           ermitteln:
  57.  
  58.       In Pascal:
  59.         Color := getpixel(x,y);
  60.         inline($89/$56/<Color);  (* Läd den 15-bit-Farbwert *)
  61.  
  62.       In C:
  63.         Color = getpixel(x,y);
  64.         Color = _DX;
  65.       
  66.  
  67.